Traditionally, enterprise computer systems have been designed by individual architects based on non-deterministic architectural models. In designing these computer systems, individual architects have generally exercised their own judgment in choosing among design options or in developing new design options. Different architects have often imparted their own unique style and artistic preferences to the design of computer systems. Computer systems designed by different architects according to these strictly judgment-based traditional techniques may have architectural differences that increase the cost of maintaining, upgrading, and/or integrating the computer systems. Furthermore, because the traditional design process has been based on the discretion and/or artistic style of the architect, this process has not yielded predictable results.